﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LWH.ByteProtocol
{
    public class StringValueProperty : WrapperAbstractProperty
    {
        ByteConverter.StringEncoding mEncoding = ByteConverter.StringEncoding.UTF8;

        public StringValueProperty(AbstractProperty wrappedProperty, ByteConverter.StringEncoding encoding = ByteConverter.StringEncoding.UTF8) : base(wrappedProperty)
        {
            mEncoding = encoding;
        }

        public string getValue()
        {
            var data = getData();
            return ByteConverter.getString(data, 0, data.Length, mEncoding);
        }

        public void setValue(string value)
        {
            var valueBytes = ByteConverter.getBytes(value,mEncoding);
            setData(valueBytes, 0, valueBytes.Length);
        }

        //public string Value
        //{
        //    get
        //    {
        //        var data = getData();
        //        return ByteConverter.getString(data, 0, data.Length, mEncoding);
        //    }

        //    set
        //    {
        //        var valueBytes = ByteConverter.getBytes(value);
        //        setData(valueBytes, 0, valueBytes.Length);
        //    }
        //}

    }
}
